import altair as alt
import pandas as pd
import geopandas as gpd
df = pd.read_csv('population_trends.csv')
df = df[df.region != 'Ukraine']
df.head()
| region | year | rate | |
|---|---|---|---|
| 31 | Crimea | 1989 | 3.9 |
| 32 | Crimea | 1990 | 2.5 |
| 33 | Crimea | 1991 | 0.9 |
| 34 | Crimea | 1992 | -0.7 |
| 35 | Crimea | 1993 | -2.7 |
ua = gpd.read_file('ukraine.json')
last_year = df["year"].max()
last_year
2019
cur_df = df[df["year"] == last_year]
карта, котра відображає рівень приросту / скорочення населення за регіонами станом на останній доступний рік
alt.Chart(ua).transform_lookup(
lookup = 'NAME_1',
from_ = alt.LookupData(data = cur_df,
key = 'region',
fields=['region', 'rate'])
).mark_geoshape().encode(
color = alt.Color('rate:O'),
tooltip = [alt.Tooltip('rate:O'),
alt.Tooltip('region:N')]
).properties(width = 900, height = 500, background = '#F9F9F9', padding = 25)
лінійний графік, котрий відображає рівень приросту / скорочення населення за регіонами за всіма роками (одна лінія на графіку - один регіон)
alt.Chart(df).mark_line().encode(
x = alt.X('year:Q'),
y = alt.Y('rate:Q'),
tooltip = [alt.Tooltip('rate:O'),
alt.Tooltip('region:N')],
detail = alt.Detail('region:N')
).properties(width = 900, height = 600)